home *** CD-ROM | disk | FTP | other *** search
- T H E P R O J E C T
-
- *** BulkDump_proj.vbp
- The main objective of this program was to analyse SC-55 bulk
- dumps and generate smaller alternatives for those dumps.
-
- A bulkdump containes 7360 nibblized bytes of data. Nibblizing
- is often used in midi communication, since midi uses only
- 7bit (0-127) 'lines'. When you want to transmit a value higher than
- 127 then there is a problem. Nibblizing is the solution,
- altough it doubles the amount of data. For instance, if you
- want to transmit &HD8 (216), you have to split it into
- &H0D , &H08 and send those 2 bytes.
- After un-nibblizing the dump data the number of bytes is
- 3680. Since I am not able yet to record a midi dump, I extract
- these dump data bytes from a *.mid file. The user has to
- record his dumps elsewhere and then load it into the program.
- In the code the data are put in the array:
- Public dmpB(3680) As Byte.
-
- Whenever the user edites one of the parameter values (mixer forms)
- it will alter the current opened dump value. After editing he can
- save the new dump values, or generate alternatives.
- The 'Alternatives' function looks for non-default values. If only a
- few are found, the resulting alternative will be much, much smaller
- in size. A saved dumps size is about 8kB or 2 to 4 bars in the
- piece of music. The alternative can be less than 1kB, 1 bar.
-
- THE DUMPS
- The information in the Sound Canvas manual about dumps is summiere,
- to say the least.
- Everything is transmitted in packets. The largest possible size
- of a packet is 128 bytes. There are 64 patch common bytes,
- 112 x 16 patch part bytes, 128 x 2 drum map parameters.
- 64 + (112 * 16) + 256 = 2112 bytes
- This is what they say, but this is much less than 3680. Why?
- When I analysed recorded dumps in midi files I found the
- following structure:
-
- 29 full part packets of 141 bytes (128 data bytes + 13 other)
- 1 non-full part packet of 29 (16 data bytes + 12 other)
- 14 full drum packets
- 1 non-full drum packet of 36 (24 data bytes + 12 other)
- 14 full drum packets
- 1 non-full drum packet of 36 (24 data bytes + 12 other)
-
- full packet = 1 DeltaTime byte
- 1 BOX byte - &HF0
- 2 following bytes size 137 Big Endian - &H81, &H9
- 3 modelbytes - &H41, &H10, &H42
- 1 DT1 (data set 1) byte - &H12
- 3 address bytes - &H480000 patch all /&H490000 drum map
- 128 packet data bytes
- 1 checksum byte
- 1 EOX byte - &HF7
- = 141 bytes
-
- If you look at the data bytes only, you can calculate:
- (29 + 28) * 128 + 16 + 48 = 7360 nibblized
- = 3680 bytes
-
- T H E F O R M S
-
- *** frmAbout
- Generated by VB5
-
- *** frmAltOpt
- This form allows the user to set some options regarding to how
- the alternatives for the dump should be generated
-
- *** frmBD
- This is the main startup form, with menu's. The menu's are explained
- in BulkDump.htm
-
- *** frmBDp
- This form is a kind of a WYSYWYG preview to print the dump data.
-
- *** frmDevCap
- This form enumerates the midi devices and lets the user choose
- one of them, suggesting the MPU-401 ports
-
- *** frmMixA
- A form for editing ALL or COMMON parameters, such as reverb and chorus
- macro.
- This form is independant of the data in sc55par.dat
- is easy to extract from the project
-
- *** frmMixLong
- This form mainly offers the possibility to generate *.SYX files for
- separate individual system exclusive messages.
-
- *** frmMixP
- A form for editing PART parameters.
- This form is independant of the data in sc55par.dat
- is easy to extract from the project
-
- *** frmReadMidi
- Since reading midi files can take a while, and sometimes the
- resulting text is larger then 64kB, this form offers the
- possibility of Canceling the action, viewing the progress
- and filtering the midi messages.
-
- *** frmSeq
- This form generates fade in and outs in the form of *.mid files.
-
- T H E M O D U L E S
-
- *** CD_File.bas
- Replaces the CommonDialog control.
-
- *** divers.bas
- This module containes general functions.
-
- *** dump.bas
- This module containes routines mostly specific to the sound canvas.
-
- *** midi.bas
- This module containes all midi API function and my own midi function
- non specific to the sound canvas.
-
- O T H E R F I L E S
-
- *** sc55par.dat
-
- [MODULEINFO]
- ManuID = 41 Roland
- DeviceID = 10 Device ID
- ModelID = 42 GS standard
-
- [SHORTMSG] - list of short messages
- 01 Bn 00 mm Bn 20 00 bank select ->No/ShortMsg bytes (mm=value)/name
-
- [PARTYPES] - list of parameter types
- 01 1 28 58 -24 +24 semitones ->No/NumBytes/MinHex/MaxHex/MinDec/MaxDec/name
-
- [COMMON] - common parameters
- 000 MAS TUN 0 400000 9 04 00 Master tune ->No/ShortName/ByteOffs/Address/ParType/Altern.SHORTMSG/name
-
- [PARTS] ->same as common
-
- Don't change anything in this file unless you know what you are doing.
-
- *** BulkDump.htm
- Is a short help file for the user.
-
- *** sysex.htm
- My own questions directed to you, the reader.
-
- *** SC.gif
- Used in BulkDump.htm
-
- *** midi.gif - anoteoff.gif
- Used in the program & BulkDump.htm
-
- *** piano.ico
- The program's icon
-
- GSall.mid
- A saved dump with default values.
-
-